#include "Contact.h"
////////////////////////////////////////////////////////////////////////////////
Contact::Contact(QString _name, QString _surname, QString _id, NetworkPlugin* _networkPlugin, ContactState _state)
:name(_name), surname(_surname),id(_id), dialogWindow(NULL), networkPlugin(_networkPlugin)
{
    this->setFont(QFont("Helvetica", 14, QFont::Bold));
    this->setText(name + " " + surname);
    changeState(_state);

}
////////////////////////////////////////////////////////////////////////////////
Contact::~Contact()
{}
////////////////////////////////////////////////////////////////////////////////
void Contact::changeState(ContactState _state)
{
    QIcon ico;
    state=_state;
    switch(state)
    {
        case AVAILABLE:
            ico = QIcon("images/Available.png");
        break;

        case UNAVAILABLE:
            ico = QIcon("images/Unavailable.png");
        break;
    }
    this->setIcon(ico);
}
////////////////////////////////////////////////////////////////////////////////
void Contact::sendMsg(QString text)
{
    networkPlugin->sendMsg(id.toStdString(),text.toStdString());
}
///////////////////////////////////////////////////////////////////////////////
void Contact::getMsg(QString text)
{
    openDialogWindow();
    dialogWindow->DisplayMsg(name+" "+surname, text );
}
////////////////////////////////////////////////////////////////////////////////
void Contact::openDialogWindow()
{
    if(dialogWindow==NULL)
    {
        dialogWindow=new DialogWindow(this);
        dialogWindow -> setGeometry(50,50,350,350);
        dialogWindow -> setWindowTitle(name + " " + surname + " - " + id);
        dialogWindow -> setWindowIcon(QIcon( (state == AVAILABLE)?"images/av.png":"images/un.png" ) );
        dialogWindow->show();
    }

}
